From 4bb4c0ffa32745be3f0f4a8c0abc2cd3fda3f715 Mon Sep 17 00:00:00 2001 From: "kaf24@scramble.cl.cam.ac.uk" Date: Tue, 6 Apr 2004 09:23:03 +0000 Subject: [PATCH] bitkeeper revision 1.850 (407276f7PPmOw5DO1i_rHS5A89f5nA) Fix 3c59x operation in PIO mode. --- xen/drivers/net/3c59x.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/xen/drivers/net/3c59x.c b/xen/drivers/net/3c59x.c index 7340657091..05a3c64856 100644 --- a/xen/drivers/net/3c59x.c +++ b/xen/drivers/net/3c59x.c @@ -227,12 +227,9 @@ static int vortex_debug = 1; #include #include #include -//#include #include -//#include #include #include -//#include #include #include #include @@ -243,7 +240,7 @@ static int vortex_debug = 1; #include #include #include -//#include +#include #include /* For NR_IRQS only. */ #include #include @@ -1936,7 +1933,9 @@ vortex_start_xmit(struct sk_buff *skb, struct net_device *dev) /* netif_wake_queue() will be called at the DMADone interrupt. */ } else { /* ... and the packet rounded to a doubleword. */ - outsl(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2); + char *vdata = map_domain_mem(__pa(skb->data)); + outsl(ioaddr + TX_FIFO, vdata, (skb->len + 3) >> 2); + unmap_domain_mem(vdata); dev_kfree_skb (skb); if (inw(ioaddr + TxFree) > 1536) { netif_start_queue (dev); /* AKPM: redundant? */ @@ -2342,8 +2341,10 @@ static int vortex_rx(struct net_device *dev) ; pci_unmap_single(vp->pdev, dma, pkt_len, PCI_DMA_FROMDEVICE); } else { - insl(ioaddr + RX_FIFO, skb_put(skb, pkt_len), + char *vdata = map_domain_mem(__pa(skb_put(skb, pkt_len))); + insl(ioaddr + RX_FIFO, vdata, (pkt_len + 3) >> 2); + unmap_domain_mem(vdata); } outw(RxDiscard, ioaddr + EL3_CMD); /* Pop top Rx packet. */ skb->protocol = eth_type_trans(skb, dev); -- 2.30.2